{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第4章 文件读取与文件合并\n",
    "本章将从以下几部分来介绍文件的读取及合并：\n",
    "\n",
    "1. 常用读取、输出文本/excel数据\n",
    "2. 使用python内置函数读取数据\n",
    "    - 基本文件操作open()/close()\n",
    "    - json数据\n",
    "    - yaml配置文件\n",
    "    - XML和HTML：Web信息收集\n",
    "3. 序列化存储格式\n",
    "    - pickle序列化\n",
    "    - HDF5格式存储\n",
    "    - shelve保存变量\n",
    "4. web APIs交互\n",
    "5. 数据库交互\n",
    "6. 多文件合并"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 常用读取、输出文本/excel数据"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAAGHCAYAAACwH1iMAAAgAElEQVR4AeydB5xUtfbHz8wWlo6AAhZEQcWGqIBd7L33LjZUxIZiV7AriPrs6LMg+CzYn+1vL9jbsyEgAiJFQaUtsGVm8v98z+wZssPM7gwsPYG7997k5OTkl3ZyktyJOOecBBcQCAgEBAICAYGAQEBgFUAgugrkMWQxIBAQCAgEBAICAYGAgCIQFJ9QEQICAYGAQEAgIBAQWGUQKKwtp/muhEUikdpYhvCAQEAgIBAQCAgEBAICywSBYPFZJrCHRAMCAYGAQEAgIBAQWBYIBMVnWaAe0gwIBAQCAgGBgEBAYJkgEBSfZQJ7SDQgEBAICAQEAgIBgWWBQFB8lgXqIc2AQEAgIBAQCAgEBJYJArVubs4kVbYNz7qxma8Chf3NmWCrMz/wD5vI6wzOwCggEBAICAQEViEEFknxueKKKyST8hNB4+F/ONm11KpQwHqpQR0SCggEBAICAYHlDAHTRW666aacdY9IbV9uNqbklUGW9/bt28snn3ySyr4NvnZPBYSHJYJAPB6XaDQqJ510kgwdOnSJpBGYBgQCAgGBgEBAYHlHIJFIyHbbbSe//PKLFBbmZsvJjaoq5/Pnz5f69etLQUGBtG7dennHY6WXr7i4WNZYY42VPp8hgwGBgEBAICAQEMiEAMYYxsJclR545KX4wNi3AGUSIvgtPQQoC788gsVt6WEfUgoIBAQCAgGBZY+ArUTlI0lep7rCwJoPtIE2IBAQCAgEBAICAYHlDYG8FJ98hFdrRKL2H36PxWLCnhXfcuGnw/pdcIuPgFmHDGe/fHiOVcayJuLHDeWRFaYQEBAICAQEAgLLAAEb13JNutalLt/KE43krif58Wzg9IUinIv9Qj6tT8MzcVGMcNAGlx8CPn5siOYCTy7w5B+uoDB59yuQlYvd/ZQtvu8XngMCAYGAQEAgILC8I1Cr4lMtA3l8nwfLABenv7i7DNaf+g3qS7du3SQei0u0ICo//fSTlJaWynvvvSf9+/eXqVOnyrfffitbb721bqb+6quvZLPNNqtRUaomb3hRrCgDTuK1atVKunTpIieffLKcf/75qvywSZ0d8c89+5xUxiulqKhoIdQoh7Fjx6q/KbHw6tix40K0wSMgEBAICAQEAgLLMwK5m3CqjrPnmhmsBFgFJkyYoNfE3yfKpMmT9Hrq6adk9z12lz/++ENpItGIWiKmT58uBxxwgIwZM0YqKyvl2GOPlWeffVZpeDdrBMtjOH2vfTUtV5FXWrqPPvpIDjvsMFVA+/btK3369NG8PvfcczJr1ixVgigDdsa/+eabcsopp6hyxP3000+Xl156SXbddVf57bff9Np7773lxhtvXGnxChkLCAQEAgIBgZUYAb7jk6tLJBKOq0OHDjlFmTNnjps3b57jjquoqHB//fWXq1evnvvggw9ceVm5Ky8vT4WVlpa66dOnu/79+7uCggKNR/wZM2a44uJivdB3ioqKNG5OQqzERPvvv7+Wh5VLtqx+9913ih3YgzfX6NGjXWFhoZs4caK+x2IxjT5o0CAtn3g87o477jh9vvvuu/VOOvFY3JWUlLjjjz8+W3LBPyAQEAgIBAQCAksNgVx1EhMoL4tPvvpfs2bNZKeddpIOHToI1oULL7xQl62wOJxxxhkydNhQ/S4Qlp6RI0fKxRdfrEta119/vVqAWrZsKbfccos0b95cevXqJWVlZSrCPffcI8X1itWCka9Mqxo9VjeWB8vLy6VFixZSUlIixx13nNx///2KKWFHHXWUWs+wpLEsWVFRIeznqlevnvqzL4gw4gwePFhpMu37WdWwDfkNCAQEAgIBgRUPgfz2+OSRP9sLsuOOO0qPHj10qWX99deXDTfcUJ588km56qqrhDDoGEQ7deqkSy2rr766HHroofLwww/L3XffLQMHDlR/o/P3oDAgB5cdAZYJURzBrF27dvL4448r3iiRu+22mz6/8MILupQIF1Nw2PTcpWsXXdayj0KhQG277baq9IRN5tkxDyEBgYBAQCAgsHwjsEQ1B1N+sCq88sorst5666nFgcH26KOPVoXHFJp33nlHRowYIRPGT9AvMGIlQmFCCXrxxRcFK8/TTz8tjRo10k26yzesy146FJVDDjlE2BCOAvm///1PFRz28YwfP14+/fRT3Tg+d+7c1Ne4UUDN6vPll1/Kfvvtp+96+qugQDp37qyXlat/X/Y5DhIEBAICAYGAQECgdgSWmMXHT/r222+XYcOGycYbb6xWBqw4LKlce+21KTKWs7bZZhvpfW5vefTRR+WEE04QNuKyLLPpppvq0esTTzxRB94DDzwwFS88ZEfALDNYfHhGsQH7AQMG6O+aEPOGG25Q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zZo1c7/++qu2Ld5nzZrlotGoI61tttnGxSpjzlVVe8qMa9yv49y1117rtt9+e+XfsGFDt+666+rz2LFj3RFHHOFOP/10lYm0Jk6c6A499FCNS/z//Oc/7p133lHelDuyN2rUSMsPPquttppbZ511UmXaoEEDxYF8duzY0bVv396VlJRoeOPGjTX+5Zdf7v78809N46ijjlK/+++/X2Vq06aNW3311fWZusGFH3WFekO/8tFHHynGhuNpp52mGGy11Vaa9k477aTh/h9kf/PNNzU/Fo87ebzpppvcd999p3IQZ+rUqa5Xr15u2223TbEAN+j1iifcGWecoWkNHz7cff755+r/119/uU6dOrk33njDvffeexr377//dt26ddN0qB9z5sxxffr0SaUFn/nz57tTTz3VzZs3T3ledNFFbubMme6///2v5r+wsFDzv+aaazrwfe2111zz5s01z2VlZSpnIp5QWnACrz333FPTAf/111/f1a9fX8M33HBD98cffyzIS1r7SmU47YEyf/nll7Usd9xxR3f11Ve7ESNGOOrQvvvuq30FdXLChAkql2HL3XfgSH1Nd6VzSt0pp5yS7q240RamT5+uz5RX79693ciRIx04wR8ZKEMtm6q+jDqE22WXXVLYjxo1yvXr188dfPDBKfxpW5SH1W3KED/6Pu5ffPGFpsc7F2nRTvx8WbqPPvpotbZAfT3kkENS7YHyhxb8wIoLfrTpF1980T300EML5T941B0C+eoky43FBw3aNOdsKiEzE2aRtdFlix/8syMAtrbCxD6Mhx56SE477TSNAN4PPvignHXWWfpu+0+Y0WAav/HGG3UW+PTTT6upn+WIf/3rX3Jt/2t1hpRL2cI46hKScHGRaIk0L2kurRo3kfJYuZQmRJpKQqKRAqksK5cirbUJKZIKKazXSFjB36jjRtKmZQv58svPZa+tDxKJxaWiIiEuIRItYFMk9+TMLDsKmUNsBkv+mcHvsfseWgeZBV915VVqhQELcMKywvIgM9GPPvpIxvwyRtZYYw2dObI0wrIClhYw4XrmmWc0USwkWIZYpsFqglWCcC0XXQJ0up+BJRxmtpjOH3n0EbU4XHHFFTqrxfTPMpDFwdSPef2aa67R8IcfflhOOukkfSdRLCy9e/fW9Mkj8lOe8Mcxc2ZJj+UYHPnFAsDsnSUkHBYAlnew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/8svv9Rw+hwUUsvLQQcdpDN1BnHkp59AiYInAyODLvTwRbEDQ2TDUsMy3QcffCAM1vQ/KIBYjt5+623N67bbbiujR42Wl19+WesJihAD/5NPPqmWIHiRHmVKnu+66y5VulRwEfn0009VGbf3XO9ghbUQ6xvlytIqSo3vunbtqniCDxdxdt55Z58k4zN0KAoomCg1/a7pJ0w6UeL33HNPbRfnnnuuxoUvjr4C7MAGmXr27CkoHzhwpQ6DH20MpQq8qcf777+/1hGUCurPFVdcoXV7n332UbwoI+JDl4t7+523tV2BDdY4+keUbpRABpnTtQAAIABJREFUlEPfoWRxIQ91e27pXOl/bf9UeyRdHDJQnr///rvKfeWVVwrlTrzhzwyX6dOmy0033ySbdNxEDjnsUHFRERd3Mqd0rgx56G5p2mg1uXDQszJ8yGBZ3ZVJpx22lITQT0TFoRSWlMmIN16T17+rlP12WEcmTfxFdtrvWFmrRYuqr6L7Uq/Czy5PF4/F3QYbbFBrrMrKSqVJJBKO57KyMsdzPB5X//Ly8mo85s+fr+9+PJ8gFotp3O233973zvh89tlna1rEwZEubu7cudXezzjjDJeIJ1LhyFRRUaE0w4cPd2+88YY+88f8kdNkN74poqX8sP/++9eaInhTZueee64rLS3VvCL3+PHj3U033ZR6N0ZgRvlSXlZWhuOWW26pZH4Zrb/++u7mm29WTE466ST37bffug8//NCB7c8//+wmTJiQSoN07bL0Fronyp1LlLpZo0a6rdbfzH095S83G6LELOfKJ7tdOu7v5v3Je4X79Jl73bln9XKzYwk3cez3bpNOO7r+D77syuHhxrsnHr7FXX75LW5+zDmtAfxJVoWFkq3JQzGMx90666yTkp98gMvs2bPdhRdemIqOP/hAO2LECDdq1CjFGSzuvPNO9+DgB93o0aPd9OnTldfGG2/sNtlkE1dQUOA22mgjV69ePbfpppu6l156yRUWFirNtttuq3fqILxJA5nA9sYbb1Scf/rpJ7f77rvrM2lRfpRxjx49UuV45JFHunHjxml8BH76qafd+++/r+9WLrvssosbOXKkyt23b1/3+uuvp3jWr18/FffnkT87LvxG/jTSbbPNNortlVde6f744w9N8+CDD1ZcyCsyDRkyxN166636DC74Pfvss+6qq65y3333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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "pandas提供了一些用于将表格型数据读取为DataFrame对象的函数。\n",
    "![image.png](attachment:image.png)\n",
    "这些函数的选项可以划分为以下几个大类：\n",
    "- 索引：将一个或多个列当做返回的DataFrame处理，以及是否从文件、用户获取列名。\n",
    "- 类型推断和数据转换：包括用户定义值的转换、和自定义的缺失值标记列表等。\n",
    "- 日期解析：包括组合功能，比如将分散在多个列中的日期时间信息组合成结果中的单个列。\n",
    "- 迭代：支持对大文件进行逐块迭代。\n",
    "- 不规整数据问题：跳过一些行、页脚、注释或其他一些不重要的东西（比如由成千上万个逗号隔开的数值数据）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.1 读取基本操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>name</th>\n",
       "      <th>salary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Tom</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Mick</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0  name  salary\n",
       "0           1   Tom    5000\n",
       "1           2  Jack   10000\n",
       "2           3  Mick    3000"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "data1 = pd.read_csv('D:\\\\test_file\\\\t1.csv')\n",
    "# 等价于 pd.read_table('D:\\\\test_file\\\\t1.csv',sep=',')\n",
    "data1.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>name</th>\n",
       "      <th>salary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Tom</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Mick</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Mack</td>\n",
       "      <td>9800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>May</td>\n",
       "      <td>4000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0  name  salary\n",
       "0           1   Tom    5000\n",
       "1           2  Jack   10000\n",
       "2           3  Mick    3000\n",
       "3           4  Mack    9800\n",
       "4           5   May    4000"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#如果路径中含有中文，需要指定engine，有时候也需要指定编码格式,encoding = 'utf-8'\n",
    "import pandas as pd\n",
    "data1 = pd.read_csv('D:\\\\test_file\\\\测试\\\\t1.csv',engine='python',encoding='utf-8')\n",
    "data1.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>name</th>\n",
       "      <th>salary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Tom</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Mick</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0  name  salary\n",
       "0           1   Tom    5000\n",
       "1           2  Jack   10000\n",
       "2           3  Mick    3000"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#也可以使用table，但是要指定分隔符，\n",
    "customer = pd.read_table(\"D:\\\\test_file\\\\t1.csv\",sep = ',')\n",
    "customer.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Tom</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Mick</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   0     1      2\n",
       "0  1   Tom   5000\n",
       "1  2  Jack  10000\n",
       "2  3  Mick   3000"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#没有列名的话可以使用系统指定\n",
    "customer = pd.read_csv(\"D:\\\\test_file\\\\t1(noheader).csv\",header = None)\n",
    "customer.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Tom</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Mick</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   a     b      c\n",
       "0  1   Tom   5000\n",
       "1  2  Jack  10000\n",
       "2  3  Mick   3000"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#没有列名的话也可以自定义\n",
    "customer = pd.read_csv(\"D:\\\\test_file\\\\t1(noheader).csv\",names=['a','b','c'])\n",
    "customer.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Tom</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Mick</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      1      2\n",
       "0             \n",
       "1   Tom   5000\n",
       "2  Jack  10000\n",
       "3  Mick   3000"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 可以指定某列作为索引\n",
    "customer = pd.read_csv(\"D:\\\\test_file\\\\t1(noheader).csv\",header=None,index_col=0)\n",
    "customer.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <th>Tom</th>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <th>Jack</th>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <th>Mick</th>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            2\n",
       "0 1          \n",
       "1 Tom    5000\n",
       "2 Jack  10000\n",
       "3 Mick   3000"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 也可建立层次索引\n",
    "customer = pd.read_csv(\"D:\\\\test_file\\\\t1(noheader).csv\",header=None,index_col=[0,1])\n",
    "customer.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>name</th>\n",
       "      <th>salary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>Mack</td>\n",
       "      <td>9800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5</td>\n",
       "      <td>May</td>\n",
       "      <td>4000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6</td>\n",
       "      <td>Tim</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>7</td>\n",
       "      <td>Aym</td>\n",
       "      <td>6000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>8</td>\n",
       "      <td>Lu</td>\n",
       "      <td>7000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>9</td>\n",
       "      <td>Li</td>\n",
       "      <td>8000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0  name  salary\n",
       "0           2  Jack   10000\n",
       "1           4  Mack    9800\n",
       "2           5   May    4000\n",
       "3           6   Tim    5000\n",
       "4           7   Aym    6000\n",
       "5           8    Lu    7000\n",
       "6           9    Li    8000"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#使用skiprows可以跳过文件指定的行\n",
    "customer = pd.read_csv(\"D:\\\\test_file\\\\t1.csv\",skiprows=[1,3])\n",
    "customer.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.2 逐块读取文本文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>name</th>\n",
       "      <th>salary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Tom</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Mick</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0  name  salary\n",
       "0           1   Tom    5000\n",
       "1           2  Jack   10000\n",
       "2           3  Mick    3000"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 如果只想读取几行（避免读取整个文件），通过nrows进行指定即可\n",
    "pd.read_csv(\"D:\\\\test_file\\\\t1.csv\",nrows=3)  # 只读取前3行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<pandas.io.parsers.TextFileReader at 0x1cf0dfe56d8>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 要逐块读取文件，可以指定chunksize,通过指定一个chunksize分块大小来读取文件\n",
    "pd.read_csv('D:\\\\test_file\\\\t1.csv',chunksize=1000) # 每一块大小为1000"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "read_csv所返回的这个TextParser对象使你可以根据chunksize对文件进行逐块迭代。如下所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5000     2.0\n",
       "10000    1.0\n",
       "9800     1.0\n",
       "7000     1.0\n",
       "4000     1.0\n",
       "8000     1.0\n",
       "6000     1.0\n",
       "3000     1.0\n",
       "dtype: float64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunker = pd.read_csv('D:\\\\test_file\\\\t1.csv',chunksize=1000)\n",
    "\n",
    "tot = pd.Series([])\n",
    "for piece in chunker:\n",
    "    tot = tot.add(piece['salary'].value_counts(),fill_value=0)\n",
    "tot = tot.sort_values(ascending=False)\n",
    "tot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.3 将数据写出到文本格式\n",
    "利用DataFrame的to_csv方法，我们可以将数据写到一个以逗号分隔的文件中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "customer = pd.read_csv(\"D:\\\\test_file\\\\t1.csv\")\n",
    "customer.to_csv(\"D:\\\\test_file\\\\test_to_t1.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当然，还可以使用其他分割符"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "customer.to_csv(\"D:\\\\test_file\\\\test_to_t2.csv\",sep='|')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "缺失值在输出结果中被表示为空字符串，可以表示为别的标记值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\lenovo\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:3: DeprecationWarning: \n",
      ".ix is deprecated. Please use\n",
      ".loc for label based indexing or\n",
      ".iloc for positional indexing\n",
      "\n",
      "See the documentation here:\n",
      "http://pandas.pydata.org/pandas-docs/stable/indexing.html#ix-indexer-is-deprecated\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "customer = pd.read_csv(\"D:\\\\test_file\\\\t1.csv\")\n",
    "customer.ix[1:2,1:3]=np.nan\n",
    "customer.to_csv(\"D:\\\\test_file\\\\t1_null.csv\",sep='|',na_rep = 'NULL')#进一步指定分隔符"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在默认情况下，会写出行和列的标签，不过也可以不保存行和列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "customer.to_csv(\"D:\\\\test_file\\\\t1_null.csv\",index=False,header=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此外，还可以只写出一部分的列，并以指定的顺序排列："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "customer.to_csv(\"D:\\\\test_file\\\\t1_null_1.csv\",index=False,columns=['name','salary'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.4 读取excel\n",
    "pandas.read_excel函数支持读取存储在Excel 2003（或更高版本）中的表格型数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>gdp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2010</td>\n",
       "      <td>413030.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2011</td>\n",
       "      <td>489300.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2012</td>\n",
       "      <td>540367.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2013</td>\n",
       "      <td>595244.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2014</td>\n",
       "      <td>643974.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year       gdp\n",
       "0  2010  413030.3\n",
       "1  2011  489300.6\n",
       "2  2012  540367.4\n",
       "3  2013  595244.4\n",
       "4  2014  643974.0"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t2 = pd.read_excel('D:/test_file/t2.xlsx')\n",
    "t2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>gdp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2010</td>\n",
       "      <td>413030.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2011</td>\n",
       "      <td>489300.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2012</td>\n",
       "      <td>540367.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2013</td>\n",
       "      <td>595244.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2014</td>\n",
       "      <td>643974.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year       gdp\n",
       "0  2010  413030.3\n",
       "1  2011  489300.6\n",
       "2  2012  540367.4\n",
       "3  2013  595244.4\n",
       "4  2014  643974.0"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 可以指定读取相应的sheet表\n",
    "t2 = pd.read_excel('D:/test_file/t2.xlsx','Sheet1')\n",
    "t2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 可以利用to_excel方法将dataframe保存为excel\n",
    "t2.to_excel('D:/test_file/t2_test.xlsx')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 使用python内置函数读取数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.1 基本文件操作open()/close()\n",
    "在 Python 中，读写文件有3 个步骤：  \n",
    "1．调用open()函数，返回一个File 对象。  \n",
    "2．调用File 对象的read()或write()方法。  \n",
    "3．调用File 对象的close()方法，关闭该文件。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （1）打开文件\n",
    "在读取或写入文件之前，必须使用Python的内置open()函数打开文件。此函数创建一个文件对象，该对象将用于调用与其相关联的其他支持方法。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "open(file_name [, access_mode][, buffering])\n",
    "- file_name:是一个字符串值，指定要访问的文件的名称。\n",
    "- access_mode:确定文件打开的模式，即读取，写入，追加等。可能的值的完整列表如下表所示。 这是一个可选参数，默认文件访问模式为(r - 也就是只读)。\n",
    "- buffering:如果buffering值设置为0，则不会发生缓冲。 如果缓冲值buffering为1，则在访问文件时执行行缓冲。如果将缓冲值buffering指定为大于1的整数，则使用指定的缓冲区大小执行缓冲操作。如果为负，则缓冲区大小为系统默认值(默认行为)。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （2）关闭文件\n",
    "文件对象的close()方法刷新任何未写入的信息并关闭文件对象，之后不能再进行写入操作。当文件的引用对象重新分配给另一个文件时，Python也会自动关闭一个文件。但使用close()方法关闭文件是个好习惯。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Name of the file:  D:\\test_file\\test1.txt\n"
     ]
    }
   ],
   "source": [
    "# 打开一个文件\n",
    "fo = open(\"D:\\\\test_file\\\\test1.txt\", \"wb\")\n",
    "print (\"Name of the file: \", fo.name)\n",
    "# 关闭文件\n",
    "fo.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （3）读取文件\n",
    "read()方法用于从打开的文件读取一个字符串。 重要的是要注意Python字符串除文本数据外可以是二进制数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "python\n",
      "c++\n",
      "java\n"
     ]
    }
   ],
   "source": [
    "# 打开并读取文件\n",
    "filename = 'D:\\\\test_file\\\\test1.txt'\n",
    "# 以只读方式打开文件，文件不可写\n",
    "f = open(filename,'r')  # 使用open函数，返回一个file对象\n",
    "text = f.read()\n",
    "print(text)\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['python\\n', 'c++\\n', 'java']\n"
     ]
    }
   ],
   "source": [
    "# 打开并读取文件（逐行读取）\n",
    "filename = 'D:\\\\test_file\\\\test1.txt'\n",
    "# 以只读方式打开文件，文件不可写\n",
    "f = open(filename,'r')  # 使用open函数，返回一个file对象\n",
    "text = f.readlines()  # 从该文件取得一个字符串的列表。列表中的每个字符串就是文本中的每一行\n",
    "print(text)\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （4）写入文件\n",
    "write()方法将任何字符串写入打开的文件。 重要的是要注意，Python字符串可以是二进制数据，而不仅仅是文本。write()方法不会在字符串的末尾添加换行符('\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world!\n"
     ]
    }
   ],
   "source": [
    "#打开写入文件，删除原内容\n",
    "#如果文件不存在，则新建文件\n",
    "filename = 'D:\\\\test_file\\\\write_test1.txt'\n",
    "f = open(filename,'w')#w为写入模式删除原有内容，如果只想添加，则需要选择a模式\n",
    "f.write('hello world!')\n",
    "f.close()\n",
    "f = open(filename,'r')\n",
    "print(f.read())\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world!\n",
      "hello world!2\n"
     ]
    }
   ],
   "source": [
    "#打开写入文件，追加模式\n",
    "#如果文件不存在，则新建文件\n",
    "filename = 'D:\\\\test_file\\\\write_test1.txt'\n",
    "f = open(filename,'a') #选择a模式\n",
    "f.write('\\nhello world!2')\n",
    "f.close()\n",
    "f = open(filename,'r')\n",
    "print(f.read())\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （5）with的使用\n",
    "关键字with 在不再需要访问文件后将其关闭。在现实情况中，并非在任何情况下都能轻松确定关闭文件的恰当时机，但通过使用with结构，可\n",
    "让Python去确定：你只管打开文件，并在需要时使用它，Python自会在合适的时候自动将其关闭。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "python\n",
      "c++\n",
      "java\n"
     ]
    }
   ],
   "source": [
    "filename = 'D:\\\\test_file\\\\test1.txt'\n",
    "# 以只读方式打开文件，文件不可写\n",
    "with open(filename,'r') as file_object:\n",
    "    contents = file_object.read()\n",
    "    print(contents)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 \t python\n",
      "2 \t c++\n",
      "3 \t java\n"
     ]
    }
   ],
   "source": [
    "# 逐行读取\n",
    "# readlines\n",
    "# rstrip() 可以消除原有的换行符\n",
    "filename = 'D:\\\\test_file\\\\test1.txt'\n",
    "#以只读方式打开文件，文件不可写\n",
    "with open(filename,'r') as file_object:\n",
    "    lines = file_object.readlines()\n",
    "    i = 1\n",
    "    for line in lines:\n",
    "        print(i,'\\t',line.rstrip())\n",
    "        i += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world!\n",
      "hello world!2\n",
      "hello world!3\n"
     ]
    }
   ],
   "source": [
    "#使用with打开写入文件，追加模式\n",
    "#如果文件不存在，则新建文件\n",
    "filename = 'D:\\\\test_file\\\\write_test1.txt'\n",
    "with open(filename,'a') as f:\n",
    "    f.write('\\nhello world!3')\n",
    "with open(filename,'r') as f:\n",
    "    contents = f.read()\n",
    "    print(contents)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.2 json数据\n",
    "JSON（JavaScript Object Notation的简称）已经成为通过HTTP请求在Web浏览器和其他应用程序之间发送数据的标准格式之一。它是一种比表格型文本格式（如CSV）灵活得多的数据格式。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- json.dumps() 将Python对象转换成JSON格式\n",
    "- json.loads() 将JSON字符串转换成Python形式\n",
    "- json.dump() 编码JSON数据\n",
    "- json.load() 解码JSON数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'{\"name\": \"myname\", \"age\": 100}'"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将一个Python数据结构转换为JSON\n",
    "import json\n",
    "data = {\n",
    "    'name':'myname',\n",
    "    'age':100\n",
    "}\n",
    "json_str = json.dumps(data)\n",
    "json_str"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'age': 100, 'name': 'myname'}"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将一个JSON编码的字符串转换回一个Python数据结构\n",
    "data = json.loads(json_str)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#存储数据\n",
    "import json\n",
    "number = [2,4,5,6,9,15]\n",
    "filename = 'D:\\\\test_file\\\\js_test.json'\n",
    "with open(filename,'w') as f:\n",
    "    json.dump(number,f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2, 4, 5, 6, 9, 15]\n"
     ]
    }
   ],
   "source": [
    "# 加载数据\n",
    "filename = 'D:\\\\test_file\\\\js_test.json'\n",
    "with open(filename,'r') as f:\n",
    "    num = json.load(f)\n",
    "    print(num)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.3 yaml配置文件读写\n",
    "YAML 是专门用来写配置文件的语言，非常简洁和强大，远比 JSON 格式方便。其读写与JSON读写非常相似，都是基于dump和load两个函数来实现。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### （1）yaml文件读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'user': 'admin', 'psw': '123456'}\n"
     ]
    }
   ],
   "source": [
    "# 读取yml\n",
    "import yaml\n",
    "filename = 'D:/test_file/test_yaml.yaml'  # 文件路径\n",
    "data = {\n",
    "    'name':'myname',\n",
    "    'age':100\n",
    "}\n",
    "with open(filename,'r') as file_object:\n",
    "    d = yaml.load(file_object.read())\n",
    "    print(d)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （2）yaml文件写入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import yaml\n",
    "filename = 'D:/test_file/test_yaml.yaml'  # 写入文件\n",
    "data = {\n",
    "    'name':'Tom',\n",
    "    'tel':'888888'\n",
    "}\n",
    "with open(filename,'w') as file_object:\n",
    "    yaml.dump(data,file_object)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.4 XML和HTML：Web信息收集\n",
    "Python有许多可以读写常见的HTML和XML格式数据的库，包括lxml、Beautiful Soup和html5lib。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "pandas有一个内置的功能，read_html，它可以使用lxml和Beautiful Soup自动将HTML文件中的表格解析为DataFrame对象。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "pandas.read_html有一些选项，默认条件下，它会搜索、尝试解析< table >标签内的的表格数据。结果是一个列表的DataFrame对象"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>序号</th>\n",
       "      <th>股票代码</th>\n",
       "      <th>股票简称</th>\n",
       "      <th>公司名称</th>\n",
       "      <th>省份</th>\n",
       "      <th>城市</th>\n",
       "      <th>主营业务收入(201712)</th>\n",
       "      <th>净利润(201712)</th>\n",
       "      <th>员工人数</th>\n",
       "      <th>上市日期</th>\n",
       "      <th>招股书</th>\n",
       "      <th>公司财报</th>\n",
       "      <th>行业分类</th>\n",
       "      <th>产品类型</th>\n",
       "      <th>主营业务</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>平安银行</td>\n",
       "      <td>平安银行股份有限公司</td>\n",
       "      <td>深圳市</td>\n",
       "      <td>罗湖区</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>32758</td>\n",
       "      <td>1991-04-03</td>\n",
       "      <td>--</td>\n",
       "      <td>NaN</td>\n",
       "      <td>银行</td>\n",
       "      <td>主营业务:经有关监管机构批准的各项商业银行业务</td>\n",
       "      <td>经有关监管机构批准的各项商业银行业务</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>万科A</td>\n",
       "      <td>万科企业股份有限公司</td>\n",
       "      <td>深圳市</td>\n",
       "      <td>盐田区</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>104300</td>\n",
       "      <td>1991-01-29</td>\n",
       "      <td>--</td>\n",
       "      <td>NaN</td>\n",
       "      <td>房地产开发</td>\n",
       "      <td>主营业务:房地产开发和物业服务</td>\n",
       "      <td>房地产开发和物业服务</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>国农科技</td>\n",
       "      <td>深圳中国农大科技股份有限公司</td>\n",
       "      <td>深圳市</td>\n",
       "      <td>南山区</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>210</td>\n",
       "      <td>1991-01-14</td>\n",
       "      <td>--</td>\n",
       "      <td>NaN</td>\n",
       "      <td>生物医药</td>\n",
       "      <td>主营业务:生物制药</td>\n",
       "      <td>生物制药</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   序号  股票代码  股票简称            公司名称   省份   城市 主营业务收入(201712) 净利润(201712)  \\\n",
       "0   1     1  平安银行      平安银行股份有限公司  深圳市  罗湖区             --          --   \n",
       "1   2     2   万科A      万科企业股份有限公司  深圳市  盐田区             --          --   \n",
       "2   3     4  国农科技  深圳中国农大科技股份有限公司  深圳市  南山区             --          --   \n",
       "\n",
       "     员工人数        上市日期 招股书  公司财报   行业分类                     产品类型  \\\n",
       "0   32758  1991-04-03  --   NaN     银行  主营业务:经有关监管机构批准的各项商业银行业务   \n",
       "1  104300  1991-01-29  --   NaN  房地产开发          主营业务:房地产开发和物业服务   \n",
       "2     210  1991-01-14  --   NaN   生物医药                主营业务:生物制药   \n",
       "\n",
       "                 主营业务  \n",
       "0  经有关监管机构批准的各项商业银行业务  \n",
       "1          房地产开发和物业服务  \n",
       "2                生物制药  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "url = 'http://s.askci.com/stock/a/?reportTime=2017-12-31&pageNum=1'\n",
    "tb = pd.read_html(url)[3]  # 爬取网页的第4个表格\n",
    "tb.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 序列化存储格式"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.1 pickle序列化\n",
    "实现数据的高效二进制格式存储最简单的办法之一是使用Python内置的pickle序列化。pandas对象都有一个用于将数据以pickle格式保存到磁盘上的to_pickle方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "customer = pd.read_csv(\"D:\\\\test_file\\\\t1.csv\")\n",
    "customer.to_pickle('D:\\\\test_file\\\\test_pickle')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过pickle直接读取被pickle化的数据，或是使用更为方便的pandas.read_pickle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>name</th>\n",
       "      <th>salary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Tom</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Jack</td>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Mick</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Mack</td>\n",
       "      <td>9800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>May</td>\n",
       "      <td>4000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>Tim</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>Aym</td>\n",
       "      <td>6000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>Lu</td>\n",
       "      <td>7000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9</td>\n",
       "      <td>Li</td>\n",
       "      <td>8000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0  name  salary\n",
       "0           1   Tom    5000\n",
       "1           2  Jack   10000\n",
       "2           3  Mick    3000\n",
       "3           4  Mack    9800\n",
       "4           5   May    4000\n",
       "5           6   Tim    5000\n",
       "6           7   Aym    6000\n",
       "7           8    Lu    7000\n",
       "8           9    Li    8000"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_pickle('D:\\\\test_file\\\\test_pickle')\n",
    "data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "注意：pickle仅建议用于短期存储格式。其原因是很难保证该格式永远是稳定的；"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "pandas内置支持两个二进制数据格式：HDF5和MessagePack。pandas或NumPy数据的其它存储格式有：\n",
    "- bcolz：一种可压缩的列存储二进制格式，基于Blosc压缩库。\n",
    "- Feather：一种跨语言的列存储文件格式。Feather使用了Apache Arrow的列式内存格式。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.2 使用HDF5格式\n",
    "HDF5是一种存储大规模科学数组数据的非常好的文件格式。它可以被作为C标准库，带有许多语言的接口，如Java、Python和MATLAB等。HDF5中的HDF指的是层次型数据格式（hierarchical data format）。每个HDF5文件都含有一个文件系统式的节点结构，它使你能够存储多个数据集并支持元数据。与其他简单格式相比，HDF5支持多种压缩器的即时压缩，还能更高效地存储重复模式数据。对于那些非常大的无法直接放入内存的数据集，HDF5就是不错的选择，因为它可以高效地分块读写。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "虽然可以用PyTables或h5py库直接访问HDF5文件，pandas提供了更为高级的接口，可以简化存储Series和DataFrame对象。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<class 'pandas.io.pytables.HDFStore'>\n",
       "File path: mydata.h5"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "frame = pd.DataFrame({'a':np.random.randn(100)})\n",
    "store = pd.HDFStore('mydata.h5')\n",
    "store['obj1'] = frame\n",
    "store['obj1_col'] = frame['a']\n",
    "store"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.096429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.208242</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.740422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.484414</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.036307</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          a\n",
       "0  0.096429\n",
       "1 -0.208242\n",
       "2 -0.740422\n",
       "3  1.484414\n",
       "4  1.036307"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# HDF5文件中的对象可以通过与字典一样的API进行获取\n",
    "store['obj1'].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "HDFStore支持两种存储模式，'fixed'和'table'。后者通常会更慢，但是支持使用特殊语法进行查询操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           a\n",
      "10 -1.256912\n",
      "11 -0.909451\n",
      "12  1.599612\n",
      "13  0.250145\n",
      "14 -0.002035\n",
      "15  0.263363\n"
     ]
    }
   ],
   "source": [
    "store.put('obj2',frame,format='table') # 将对象存储在HDFStore中\n",
    "# 查询索引在10到15之间的数据\n",
    "print(store.select('obj2',where=['index >= 10 and index <=15']))\n",
    "store.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "pandas.read_hdf函数可以快捷实现上面的操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.096429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.208242</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.740422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.484414</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.036307</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          a\n",
       "0  0.096429\n",
       "1 -0.208242\n",
       "2 -0.740422\n",
       "3  1.484414\n",
       "4  1.036307"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "frame.to_hdf('mydata.h5','obj3',format='table')\n",
    "pd.read_hdf('mydata.h5','obj3',where=['index < 5'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "注意：HDF5不是数据库。它最适合用作“一次写多次读”的数据集。虽然数据可以在任何时候被添加到文件中，但如果同时发生多个写操作，文件就可能会被破坏。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.3 用Python中的shelve保存变量\n",
    "利用shelve 模块，你可以将Python 程序中的变量保存到二进制的shelf 文件中。这样，程序就可以从硬盘中恢复变量的数据。shelve 模块让你在程序中添加“保存”和“打开”功能。例如，如果运行一个程序，并输入了一些配置设置，就可以将这些设置保存到一个shelf 文件，然后让程序下一次运行时加载它们。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#输出当前的绝对路径\n",
    "import shelve\n",
    "shelfFile = shelve.open('D:\\\\test_file\\\\mydata')#传入文件名\n",
    "cats = ['Zophie','Pooka','Simon']\n",
    "shelfFile['cats']=cats#将列表保存在shelfFile中，作为健‘cats’的关联值\n",
    "shelfFile.close()\n",
    "#在windows中运行上述代码，会在当前工作目录下有3个新文件：mydata.bak,mydata.dat,mydata.dir"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'shelve.DbfilenameShelf'>\n",
      "['Zophie', 'Pooka', 'Simon']\n",
      "['cats']\n",
      "[['Zophie', 'Pooka', 'Simon']]\n"
     ]
    }
   ],
   "source": [
    "#接下来重新打开这些文件取出数据\n",
    "shelfFile = shelve.open('D:\\\\test_file\\\\mydata')\n",
    "print(type(shelfFile))\n",
    "print(shelfFile['cats'])\n",
    "print(list(shelfFile.keys()))\n",
    "print(list(shelfFile.values()))\n",
    "shelfFile.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. Web APIs交互\n",
    "许多网站都有一些通过JSON或其他格式提供数据的公共API。通过Python访问这些API的办法有不少。一个简单易用的办法（推荐）是requests包"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "本部分以搜索最新的30个GitHub上的pandas主题为例，下面使用requests扩展库，发一个HTTP GET请求。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 发一个HTTP GET请求\n",
    "import requests\n",
    "url = 'https://api.github.com/repos/pandas-dev/pandas/issues'\n",
    "resp = requests.get(url)\n",
    "resp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "响应对象的json方法会返回一个包含被解析过的JSON字典，加载到一个Python对象中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Auto backport of pr 28074 on 0.25.x'"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = resp.json()\n",
    "data[2]['title']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "data中的每个元素都是一个包含所有GitHub主题页数据（不包含评论）的字典。我们可以直接传递数据到DataFrame，并提取感兴趣的字段"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>number</th>\n",
       "      <th>title</th>\n",
       "      <th>labels</th>\n",
       "      <th>state</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>28080</td>\n",
       "      <td>BUG: Series[int] + datetime64 should raise</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>28079</td>\n",
       "      <td>API: flex comparisons DataFrame vs Series inco...</td>\n",
       "      <td>[{'id': 35818298, 'node_id': 'MDU6TGFiZWwzNTgx...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28078</td>\n",
       "      <td>Auto backport of pr 28074 on 0.25.x</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>28077</td>\n",
       "      <td>Backport PR #28072 on branch 0.25.x (TST: non-...</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>28076</td>\n",
       "      <td>Backport PR #28065: CI: disable codecov</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>28075</td>\n",
       "      <td>DOC: redirect from_csv search</td>\n",
       "      <td>[{'id': 134699, 'node_id': 'MDU6TGFiZWwxMzQ2OT...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>28071</td>\n",
       "      <td>Loading CSV files (using `read_csv`) with blan...</td>\n",
       "      <td>[{'id': 47229171, 'node_id': 'MDU6TGFiZWw0NzIy...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>28068</td>\n",
       "      <td>Remove alias in pandas docs for numpy.random.r...</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>28066</td>\n",
       "      <td>REF: do extract_array earlier in series arith/...</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>28060</td>\n",
       "      <td>Update groupby</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>28053</td>\n",
       "      <td>DOC:Timestamp timedelta</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>28052</td>\n",
       "      <td>Make DataFrame.to_string output full content b...</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>28051</td>\n",
       "      <td>TST: fix compression tests when run without vi...</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>28050</td>\n",
       "      <td>NUM: inequality with complex dtypes</td>\n",
       "      <td>[{'id': 172091424, 'node_id': 'MDU6TGFiZWwxNzI...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>28049</td>\n",
       "      <td>BUG: timedelta64(NaT) incorrectly treated as d...</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>28048</td>\n",
       "      <td>BUG: retain extension dtypes in transpose</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>28047</td>\n",
       "      <td>Issue 20927 fix resolves read_sas error for da...</td>\n",
       "      <td>[{'id': 258745163, 'node_id': 'MDU6TGFiZWwyNTg...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>28046</td>\n",
       "      <td>DOC: DataFrame.plot is missing most of the doc...</td>\n",
       "      <td>[{'id': 134699, 'node_id': 'MDU6TGFiZWwxMzQ2OT...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>28045</td>\n",
       "      <td>Integer overflow in Series.astype('datetime64[...</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>28039</td>\n",
       "      <td>Bug: Resample removes timezone localization fr...</td>\n",
       "      <td>[{'id': 42670965, 'node_id': 'MDU6TGFiZWw0MjY3...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>28038</td>\n",
       "      <td>DOC: Remove docs code header and use explicit ...</td>\n",
       "      <td>[{'id': 134699, 'node_id': 'MDU6TGFiZWwxMzQ2OT...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>28037</td>\n",
       "      <td>REF: boilerplate for ops internal consistency</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>28036</td>\n",
       "      <td>CLN: small ops optimizations</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>28034</td>\n",
       "      <td>REGR: Index.union should pick correct dtype fo...</td>\n",
       "      <td>[{'id': 1218227310, 'node_id': 'MDU6TGFiZWwxMj...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>28032</td>\n",
       "      <td>Add support to names keyword in Index</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>28031</td>\n",
       "      <td>DOC: Fix docstrings lack of punctuation</td>\n",
       "      <td>[{'id': 134699, 'node_id': 'MDU6TGFiZWwxMzQ2OT...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>28027</td>\n",
       "      <td>REF: standardize usage in DataFrame vs SparseD...</td>\n",
       "      <td>[]</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>28025</td>\n",
       "      <td>DES: Q about SparseDataFrame._combine_match_co...</td>\n",
       "      <td>[{'id': 49182326, 'node_id': 'MDU6TGFiZWw0OTE4...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>28023</td>\n",
       "      <td>BUG: Series.loc[list] with uint64 keys raises ...</td>\n",
       "      <td>[{'id': 76811, 'node_id': 'MDU6TGFiZWw3NjgxMQ=...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>28022</td>\n",
       "      <td>[Feature Request] pd.DataFrame.schema iterable</td>\n",
       "      <td>[{'id': 35818298, 'node_id': 'MDU6TGFiZWwzNTgx...</td>\n",
       "      <td>open</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    number                                              title  \\\n",
       "0    28080         BUG: Series[int] + datetime64 should raise   \n",
       "1    28079  API: flex comparisons DataFrame vs Series inco...   \n",
       "2    28078                Auto backport of pr 28074 on 0.25.x   \n",
       "3    28077  Backport PR #28072 on branch 0.25.x (TST: non-...   \n",
       "4    28076            Backport PR #28065: CI: disable codecov   \n",
       "5    28075                      DOC: redirect from_csv search   \n",
       "6    28071  Loading CSV files (using `read_csv`) with blan...   \n",
       "7    28068  Remove alias in pandas docs for numpy.random.r...   \n",
       "8    28066  REF: do extract_array earlier in series arith/...   \n",
       "9    28060                                     Update groupby   \n",
       "10   28053                            DOC:Timestamp timedelta   \n",
       "11   28052  Make DataFrame.to_string output full content b...   \n",
       "12   28051  TST: fix compression tests when run without vi...   \n",
       "13   28050                NUM: inequality with complex dtypes   \n",
       "14   28049  BUG: timedelta64(NaT) incorrectly treated as d...   \n",
       "15   28048          BUG: retain extension dtypes in transpose   \n",
       "16   28047  Issue 20927 fix resolves read_sas error for da...   \n",
       "17   28046  DOC: DataFrame.plot is missing most of the doc...   \n",
       "18   28045  Integer overflow in Series.astype('datetime64[...   \n",
       "19   28039  Bug: Resample removes timezone localization fr...   \n",
       "20   28038  DOC: Remove docs code header and use explicit ...   \n",
       "21   28037      REF: boilerplate for ops internal consistency   \n",
       "22   28036                       CLN: small ops optimizations   \n",
       "23   28034  REGR: Index.union should pick correct dtype fo...   \n",
       "24   28032              Add support to names keyword in Index   \n",
       "25   28031            DOC: Fix docstrings lack of punctuation   \n",
       "26   28027  REF: standardize usage in DataFrame vs SparseD...   \n",
       "27   28025  DES: Q about SparseDataFrame._combine_match_co...   \n",
       "28   28023  BUG: Series.loc[list] with uint64 keys raises ...   \n",
       "29   28022     [Feature Request] pd.DataFrame.schema iterable   \n",
       "\n",
       "                                               labels state  \n",
       "0                                                  []  open  \n",
       "1   [{'id': 35818298, 'node_id': 'MDU6TGFiZWwzNTgx...  open  \n",
       "2                                                  []  open  \n",
       "3                                                  []  open  \n",
       "4                                                  []  open  \n",
       "5   [{'id': 134699, 'node_id': 'MDU6TGFiZWwxMzQ2OT...  open  \n",
       "6   [{'id': 47229171, 'node_id': 'MDU6TGFiZWw0NzIy...  open  \n",
       "7                                                  []  open  \n",
       "8                                                  []  open  \n",
       "9                                                  []  open  \n",
       "10                                                 []  open  \n",
       "11                                                 []  open  \n",
       "12                                                 []  open  \n",
       "13  [{'id': 172091424, 'node_id': 'MDU6TGFiZWwxNzI...  open  \n",
       "14                                                 []  open  \n",
       "15                                                 []  open  \n",
       "16  [{'id': 258745163, 'node_id': 'MDU6TGFiZWwyNTg...  open  \n",
       "17  [{'id': 134699, 'node_id': 'MDU6TGFiZWwxMzQ2OT...  open  \n",
       "18                                                 []  open  \n",
       "19  [{'id': 42670965, 'node_id': 'MDU6TGFiZWw0MjY3...  open  \n",
       "20  [{'id': 134699, 'node_id': 'MDU6TGFiZWwxMzQ2OT...  open  \n",
       "21                                                 []  open  \n",
       "22                                                 []  open  \n",
       "23  [{'id': 1218227310, 'node_id': 'MDU6TGFiZWwxMj...  open  \n",
       "24                                                 []  open  \n",
       "25  [{'id': 134699, 'node_id': 'MDU6TGFiZWwxMzQ2OT...  open  \n",
       "26                                                 []  open  \n",
       "27  [{'id': 49182326, 'node_id': 'MDU6TGFiZWw0OTE4...  open  \n",
       "28  [{'id': 76811, 'node_id': 'MDU6TGFiZWw3NjgxMQ=...  open  \n",
       "29  [{'id': 35818298, 'node_id': 'MDU6TGFiZWwzNTgx...  open  "
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issues = pd.DataFrame(data,columns=['number','title','labels','state'])\n",
    "issues"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5. 数据库交互\n",
    "大多数数据可能不是存储在文本或Excel文件中。基于SQL的关系型数据库（如SQL Server、PostgreSQL和MySQL等）使用非常广泛，其它一些数据库也很流行。数据库的选择通常取决于性能、数据完整性以及应用程序的伸缩性需求。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 5.1 读取数据库数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### （1）PostgreSQL"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import psycopg2\n",
    "\n",
    "# 创建连接\n",
    "conn = psycopg2.connect(database=\"create_dw_dev\",\n",
    "                        user=\"ds_usr\",\n",
    "                        password=\"$ds_usr\", \n",
    "                        host=\"192.168.1.150\",\n",
    "                        port='5432')\n",
    "# sql语句\n",
    "sql = \"SELECT * FROM ods_wdp.wdp_rpt_site_mon_data_list where year = 2019 and month = 8\"\n",
    "# 创建游标\n",
    "cur = conn.cursor()\n",
    "cur.execute(sql)\n",
    "\n",
    "index = cur.description  # 读取列名\n",
    "result = []\n",
    "for res in cur.fetchall():  # 遍历每一行数据\n",
    "    row = {}\n",
    "    for i in range(len(index)):  # 每个字段逐行填入\n",
    "        row[index[i][0]] = res[i]\n",
    "    result.append(row)\n",
    "    conn.close()\n",
    "data = pd.DataFrame(result)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### （2）MySQL"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# SQL 查询语句\n",
    "sql = \"SELECT * FROM EMPLOYEE \\\n",
    "       WHERE INCOME > %s\" % (1000)\n",
    "try:\n",
    "    # 执行SQL语句\n",
    "    cursor.execute(sql)\n",
    "    # 获取所有记录列表\n",
    "    results = cursor.fetchall()   \n",
    "    for row in results:\n",
    "        fname = row[0]\n",
    "        lname = row[1]\n",
    "        age = row[2]\n",
    "        sex = row[3]\n",
    "        income = row[4]\n",
    "        # 打印结果\n",
    "        print \"fname=%s,lname=%s,age=%s,sex=%s,income=%s\" % (fname, lname, age, sex, income )\n",
    "except：\n",
    "    print(\"Error: unable to fecth data\")\n",
    "\n",
    "# 关闭数据库连接\n",
    "db.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 5.2 建表及插入数据\n",
    "和查询不一样，建表和插入需要提交，commit"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### （1）PostgreSQL"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 创建连接\n",
    "conn = psycopg2.connect(database=\"create_dw_dev\",\n",
    "                        user=\"ds_usr\",\n",
    "                        password=\"$ds_usr\", \n",
    "                        host=\"192.168.1.150\",\n",
    "                        port='5432')\n",
    "# 创建游标\n",
    "cur = conn.cursor()\n",
    "sql = \"\"\"drop table if exists tmp.python_test;\n",
    "         create table tmp.python_test(pm numeric(10,2),no2 numeric(10,2));\n",
    "         insert into tmp.python_test values(1,2)\n",
    "      \"\"\"\n",
    "\n",
    "cur.execute(sql)\n",
    "conn.commit()\n",
    "conn.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### （2）MySQL"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 建表\n",
    "import MySQLdb\n",
    "# 打开数据库连接\n",
    "db = MySQLdb.connect(\"localhost\", \"testuser\", \"test123\", \"TESTDB\", charset='utf8' )\n",
    "# 使用cursor()方法获取操作游标 \n",
    "cursor = db.cursor()\n",
    "# 如果数据表已经存在使用 execute() 方法删除表。\n",
    "cursor.execute(\"DROP TABLE IF EXISTS EMPLOYEE\")\n",
    "# 创建数据表SQL语句\n",
    "sql = \"\"\"CREATE TABLE EMPLOYEE (\n",
    "         FIRST_NAME  CHAR(20) NOT NULL,\n",
    "         LAST_NAME  CHAR(20),\n",
    "         AGE INT,  \n",
    "         SEX CHAR(1),\n",
    "         INCOME FLOAT )\"\"\"\n",
    "\n",
    "cursor.execute(sql)\n",
    "\n",
    "# 关闭数据库连接\n",
    "db.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 插入数据\n",
    "import MySQLdb\n",
    "\n",
    "# 打开数据库连接\n",
    "db = MySQLdb.connect(\"localhost\", \"testuser\", \"test123\", \"TESTDB\", charset='utf8' )\n",
    "# 使用cursor()方法获取操作游标 \n",
    "cursor = db.cursor()\n",
    "# SQL 插入语句\n",
    "sql = \"\"\"INSERT INTO EMPLOYEE(FIRST_NAME,\n",
    "         LAST_NAME, AGE, SEX, INCOME)\n",
    "         VALUES ('Mac', 'Mohan', 20, 'M', 2000)\"\"\"\n",
    "try:\n",
    "   # 执行sql语句\n",
    "   cursor.execute(sql)\n",
    "   # 提交到数据库执行\n",
    "   db.commit()\n",
    "except:\n",
    "   # Rollback in case there is any error\n",
    "   db.rollback()\n",
    "# 关闭数据库连接\n",
    "db.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6. 多文件合并\n",
    "将多个文件合并成一个文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 6.1 将文件夹内所有txt文件合并成一个txt文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import os.path  # 文件夹遍历函数\n",
    "# 获取目标文件夹的路径\n",
    "filedir = 'D:/test_file/file1'\n",
    "# 获取当前文件夹中的文件名称列表\n",
    "filenames = os.listdir(filedir)\n",
    "# 打开result.txt文件，如果没有则创建\n",
    "f = open('D:/test_file/result.txt','w')\n",
    "# 先遍历文件名\n",
    "for filename in filenames:\n",
    "    filepath = filedir + '/' + filename\n",
    "    # 遍历单个文件，读取行数\n",
    "    for line in open(filepath):\n",
    "        f.writelines(line)\n",
    "    f.write('\\n')\n",
    "# 关闭文件    \n",
    "f.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 6.2 将文件夹中所有josn文件合并成一个json文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import os.path  # 文件夹遍历函数\n",
    "import json\n",
    "json_list = []\n",
    "# 获取目标文件夹的路径\n",
    "filedir = 'D:/test_file/file2'\n",
    "# 获取当前文件夹中的文件名称列表\n",
    "filenames = os.listdir(filedir)\n",
    "for filename in filenames:\n",
    "    filepath = filedir + '/' + filename\n",
    "    # 保存每个json文件的内容\n",
    "    with open(filepath,'r') as f:\n",
    "        rs = json.load(f)\n",
    "        json_list.append(rs)\n",
    "# 下面将所有json文件的内容写入json_result中\n",
    "filename = 'D:\\\\test_file\\\\json_result.json'\n",
    "with open(filename,'w') as f:\n",
    "    json.dump(json_list,f)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 6.3 多个相同结构excel合并成一个excel文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import os.path  # 文件夹遍历函数\n",
    "import pandas as pd\n",
    "concat_df = pd.DataFrame()  # 用于存储每个excel中的数据\n",
    "# 获取目标文件夹的路径\n",
    "filedir = 'D:/test_file/file3'\n",
    "# 获取当前文件夹中的文件名称列表\n",
    "filenames = os.listdir(filedir)\n",
    "for filename in filenames:\n",
    "    filepath = filedir + '/' + filename\n",
    "    # 读取excel文件\n",
    "    df = pd.read_excel(filepath)\n",
    "    concat_df = pd.concat([merge_df,df],ignore_index=True)  # 数据集合\n",
    "merge_df.to_excel('D:/test_file/file3/result.xlsx')   # 保存合并后的结果文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
